package com.dxy.lc.socketio;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

@Data
@ConfigurationProperties(prefix = "socketio")
public class SocketIoProperties {

    //主机名，默认是 0.0.0.0 （这个设不设置无所谓，因为后面的 SocketConfig 类一般不用设置这个）
    private String host = "0.0.0.0";

    // 运行端口
    private int port = 20001;

    // 主线程的数量，负责接收客户端的连接请求
    private int bossCount = 1;

    // 工作线程的数量，处理已连接客户端的请求
    private int workCount = 100;

    // 是否允许自定义请求，这可能影响客户端与服务器之间的通信方式
    private boolean allowCustomRequests = true;

    // 升级协议（如从 HTTP 到 WebSocket）时的超时时间（毫秒）
    private int upgradeTimeout = 10000;

    // 心跳超时时间，表示服务器等待客户端响应心跳的最长时间（毫秒）
    private int pingTimeout = 60000;

    // 心跳发送的时间间隔，表示服务器定期向客户端发送心跳包的频率（毫秒）
    private int pingInterval = 25000;

    // 允许的最大 HTTP 内容长度，超过这个长度的请求将被拒绝
    private int maxHttpContentLength = 10485760;

    // 允许的最大帧负载长度，适用于 WebSocket 等协议
    private int maxFramePayloadLength = 10485760;
}
